package com.candy.dao;

import com.candy.pojo.StudentInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface StudentInfoMapper {
    /**
     * 使用注解实现多参数传递
     * @param studentInfo:传进来的是实体类的属性信息，在mapper的xml文件中，该属性需要使用studentInfo.属性  去解析传进来的参数信息
     * @param isDESC：是否进行倒叙排序，在xml文件中，参数位置需要与param中的名字相同（isDESC）
     *
     * @return
     */
    List<StudentInfo> selectAllInfoByParams2(@Param("studentInfo") StudentInfo studentInfo, @Param("isDESC") boolean isDESC);
    /**
     * 多参数传递
     * @param stuName
     * @param stuAddress
     * @return
     */
    List<StudentInfo> selectAllInfoByParams(String stuName,String stuAddress);

    /**
     * 使用mysql自带语法concat实现模糊查询
     * @param studentInfo
     * @return
     */
    List<StudentInfo> selectAllInfoByLike2(StudentInfo studentInfo);
    /**
     * 使用bind实现模糊查询
     * @param studentInfo
     * @return
     */
    List<StudentInfo> selectAllInfoByLike(StudentInfo studentInfo);

    List<StudentInfo> selectAllInfoByIds(List ids);

    /**
     * 动态SQL：where
     * @param studentInfo
     * @return
     */
    List<StudentInfo> selectAllInfoByWhere(StudentInfo studentInfo);

    /**
     * 动态SQL:choose、when、otherwise
     * @param studentInfo
     * @return
     */
    List<StudentInfo> selectAllInfoByParam(StudentInfo studentInfo);



    int deleteByPrimaryKey(Integer id);

    int insert(StudentInfo record);

    int insertSelective(StudentInfo record);

    StudentInfo selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(StudentInfo record);

    int updateByPrimaryKey(StudentInfo record);
}